1
イントロスペクションの力
AI035Lesson 15
00:00

Rubyでは、コードは単なる静的なスクリプトではなく、 生きているシステムです。 イントロスペクション とは、オブジェクトに『自己認識』を可能にする超能力であり、ブラックボックスから機能性の検索可能なマップへと変化させます。たとえ 即時値 整数のような即時値も、実行時にそのルーツや機能について問い合わせることができます。

1. 活きているインターフェース

以下のように呼び出すことで obj.methods(regular=true)、オブジェクトの完全な関数的語彙にアクセスできます。簡単な範囲オブジェクト(r = 1..10)は驚くべき 68個の異なるメソッドを明らかにし、 Object および Enumerable ミックスインからの豊かな継承を反映しています。

サイドバー [A]ArrayAtan2AutoLoadクラス Array < ObjectEnumerableメソッドシグネチャ:Array#pack入力:テンプレート文字列出力:バイナリ文字列

2. ダイナミックな発見

この respond_to? メソッドは実行時ゲートキーパーとして機能し、 ダックタイピングを可能にします。代わりに「あなたは何ですか?」ではなく、「あなたはこれができるか?」と尋ねます。この柔軟性により、実際に使える機能に基づいてプログラムが適応できるようになります。たとえば、文字列が代入風の記号(=)に対応するか、または数値が特定の 階層クエリです。

3. メタドキュメント橋渡し

RDocなどのツールは、これらの機能を使って RDoc 自動的に アルファベット順リストレイアウト およびメソッドシグネチャブロック図を生成します。モジュール定数とインスタンス変数を照会することで、開発者は名前空間構造全体をプログラム的にナビゲートでき、ソースファイルと実行中のコードの間のギャップを埋められます。 モジュール定数 および インスタンス変数開発者はプログラム的に名前空間構造全体をナビゲートでき、ソースファイルと実行中のコードの間のギャップを埋められます。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>